<?php
class Producto_model extends CI_Model
{

    public function __construct()
    {
        // Call the Model constructor
        parent::__construct();
        $this->load->database();
    }

    public function get_productos($codCategoria=-1,$txt_buscar=''){
        $sql = "" .
            "SELECT p.cod_producto AS codigo, " .
            "       p.nom_producto AS nombre, " .
            "       p.es_producto  AS estado, " .
            "       p.desc_producto  AS descripcion, " .
//            "       p.precio_producto  AS precio, " .
            "       IFNULL(TRIM(p.imagen_principal_producto), 'mininodisponible.png')  AS imagenPrincipal, " .
            "       IFNULL(TRIM(p.imagen_secundaria_producto), 'mininodisponible.png')  AS imagenSecundaria, " .
            "       p.cod_categoria  AS codigoCategoriaPadre " .
//            "       p.relacion_producto  AS relacion " .
            "FROM   producto p ".
            "WHERE  1=1 ";
        if($codCategoria!=-1){
            $sql .= " and p.cod_categoria= ".$codCategoria;
        }



        if($txt_buscar!=''){
            $sql.=" and ( p.nom_producto like '".$txt_buscar."%' ";
            $sql.=" or p.desc_producto like '".$txt_buscar."%' ) ";
        }
        $sql.=" order by p.orden_producto asc ";

        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }

    public function get_producto_novedad(){
        $sql = "" .
            "SELECT p.cod_producto AS codigo, " .
            "       p.nom_producto AS nombre, " .
            "       p.es_producto  AS estado, " .
            "       p.desc_producto  AS descripcion, " .
//            "       p.precio_producto  AS precio, " .
            "       IFNULL(TRIM(p.imagen_principal_producto), 'mininodisponible.png')  AS imagenPrincipal, " .
            "       IFNULL(TRIM(p.imagen_secundaria_producto), 'mininodisponible.png')  AS imagenSecundaria, " .
            "       p.cod_categoria  AS codigoCategoriaPadre " .
//            "       p.relacion_producto  AS relacion " .
            "FROM   producto p ".
            "WHERE  in_novedad=1 ";

        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }
 public function get_productosCategoria($codCategoria=-1){
        $sql = "" .
            "SELECT p.cod_producto AS codigo, " .
            "       p.nom_producto AS nombre, " .
            "       p.es_producto  AS estado, " .
            "       p.desc_producto  AS descripcion, " .
            "       p.orden_producto  AS orden, " .
            "       IFNULL(TRIM(p.imagen_principal_producto), 'mininodisponible.png')  AS imagenPrincipal, " .
            "       IFNULL(TRIM(p.imagen_secundaria_producto), 'mininodisponible.png')  AS imagenSecundaria, " .
            "       p.cod_categoria  AS codigoCategoriaPadre " .
//            "       p.relacion_producto  AS relacion " .
            "FROM   producto p ".
            "WHERE  p.cod_categoria in (select cod_categoria from categoria where cod_categoria_padre= ".$codCategoria.") order by p.orden_producto asc ";


        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }

    public function get_productoById($codProducto = '0'){
        $sql = "" .
            "SELECT p.cod_producto        AS codigo  , " .
            "       p.nom_producto        AS nombre  , " .
            "       p.es_producto         AS estado  , " .
            "       p.desc_producto         AS descripcion , " .
            "       p.orden_producto        AS orden   , " .
            "       IFNULL(TRIM(p.imagen_principal_producto), 'mininodisponible.png')  AS imagenPrincipal, " .
            "       IFNULL(TRIM(p.imagen_secundaria_producto), 'mininodisponible.png')  AS imagenSecundaria, " .
            "       c.cod_categoria_padre  AS codigoCategoriaPadre , " .
            "       p.cod_categoria       AS codigoCategoria , " .
            "       c.nom_categoria       AS nombreCategoria ,    " .
            "       cp.cod_categoria       AS codigoCategoriaPadre ,  " .
            "       cp.nom_categoria       AS nombreCategoriaPadre     " .
            "FROM   producto p , " .
            "       categoria c, " .
            "       categoria cp " .
            "WHERE  p.cod_categoria = c.cod_categoria ".
            "  and  cp.cod_categoria = c.cod_categoria_padre ".
            "  and  p.cod_producto=" . $codProducto  .
            " UNION ".
            "SELECT p.cod_producto        AS codigo  , " .
            "       p.nom_producto        AS nombre  , " .
            "       p.es_producto         AS estado  , " .
            "       p.desc_producto         AS descripcion , " .
            "       p.orden_producto        AS orden   , " .
            "       IFNULL(TRIM(p.imagen_principal_producto), 'mininodisponible.png')  AS imagenPrincipal, " .
            "       IFNULL(TRIM(p.imagen_secundaria_producto), 'mininodisponible.png')  AS imagenSecundaria, " .
            "       cp.cod_categoria  AS codigoCategoriaPadre , " .
            "       p.cod_categoria       AS codigoCategoria , " .
            "       cp.nom_categoria       AS nombreCategoria ,    " .
            "       cp.cod_categoria       AS codigoCategoriaPadre ,  " .
            "       cp.nom_categoria       AS nombreCategoriaPadre     " .
            "FROM   producto p , " .
            "       categoria cp " .
            "WHERE   p.cod_producto=". $codProducto .
            "  and  cp.cod_categoria = p.cod_categoria ";

        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result[0];
    }

    public function get_productoDetalle($codProducto,$lineaId){
        $sql = "" .
            "SELECT d.cod_imagen as codigo , " .
            "       d.orden_imagen as orden , " .
            "       d.cod_linea as codigoLinea , " .
            "       d.nombre_imagen as nombre " .
            "FROM   producto_imagen d  " .
            "WHERE  d.cod_producto = ".$codProducto." ".
            " and   cod_linea =".$lineaId." ".
            "  order by 2 asc ";
        $query = $this->db->query($sql);
        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }

    public function get_lineaImagen($codProducto,$lineaId){
        $sql = "" .
            "SELECT d.cod_imagen as codigo , " .
            "       d.orden_imagen as orden , " .
            "       d.cod_linea as codigoLinea , " .
            "       d.nombre_imagen as nombre " .
            "FROM   producto_imagen d  " .
            "WHERE  d.cod_producto = ".$codProducto." ".
            " and   d.cod_linea =".$lineaId." ".
            " and   d.orden_imagen =1 ";

        $query = $this->db->query($sql);
        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }

    public function get_lineas($codProducto){
        $sql = "SELECT cod_linea,nombre_linea FROM producto_linea where cod_producto =".$codProducto;

        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }

    public function update_productoVisita($codproducto=-1){
        $sql = "" .
            " update ".
            " producto_ranking ".
            " set ".
            " nu_visita=nu_visita+1, ".
            " fe_ult_visita= NOW() ".
            " where cod_producto= ".$codproducto;
        $this->db->query($sql);
    }

    public function get_productoSugerencias($idSugeridos=-1){
        if($idSugeridos==''){
            return array();
        }
        $sql = "" .
            "SELECT p.cod_producto AS codigo, " .
            "       p.nom_producto AS nombre, " .
            "       p.es_producto  AS estado, " .
            "       p.desc_producto  AS descripcion, " .
            "       p.orden_producto  AS orden, " .
            "       IFNULL(TRIM(p.imagen_principal_producto), 'mininodisponible.png')  AS imagenPrincipal, " .
            "       IFNULL(TRIM(p.imagen_secundaria_producto), 'mininodisponible.png')  AS imagenSecundaria, " .
            "       p.cod_categoria  AS codigoCategoriaPadre " .
//            "       p.relacion_producto  AS relacion " .
            "FROM   producto p ".
            "WHERE  1=1 ".
            " and   p.cod_producto in (".$idSugeridos.") order by p.orden_producto asc";

        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }








    public function delete_productoById($codProducto = '0'){
        $this->db->query("delete from producto where cod_producto=".$codProducto);
    }
    public function get_categoriaById($idCategoria = '0'){
        $sql = "" .
        "SELECT c.cod_categoria AS codigo, " .
            "       c.nom_categoria AS nombre, " .
            "       c.es_categoria  AS estado, " .
            "       c.cod_categoria_padre  AS codigoCategoriaPadre, " .
            "       'C'           AS tipo " .
            "FROM   categoria c " .
            "WHERE  c.cod_categoria=" . $idCategoria ;
        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result[0];
    }



    public function delete_productos($codCategoria=1){
        $sql = "" .
            "DELETE FROM   producto  ".
            "WHERE  cod_categoria= ".$codCategoria;

        $this->db->query($sql);
    }



    public function update_productoCompra($codproducto=-1){
        $sql = "" .
         " update ".
         " producto_ranking ".
         " set ".
         " nu_compra=nu_compra+1, ".
         " fe_ult_compra= NOW() ".
         " where cod_producto= ".$codproducto;
        $this->db->query($sql);
    }

    public function delete_opcion_productos($codProducto){
        $sql = "" .
            "DELETE FROM   producto_detalle ".
            "WHERE  cod_producto = ".$codProducto;

        $this->db->query($sql);
    }
    public function get_productos_ranking(){
       $sql = "" .
        " select p.cod_producto,p.nom_producto, ".
        " pr.nu_visita, DATE_FORMAT(pr.fe_ult_visita,'%d/%m/%Y %h:%i %p') fe_ult_visita, ".
        " pr.nu_compra, DATE_FORMAT(pr.fe_ult_compra,'%d/%m/%Y %h:%i %p') fe_ult_compra ".
        " from producto p, ".
        " producto_ranking pr ".
        " where ".
        " pr.cod_producto= p.cod_producto order by pr.nu_visita desc, pr.nu_compra desc ";

        $query =  $this->db->query($sql);
        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }




    public function delete_detalle($inDetalle){
        if($inDetalle=="") return;
        $this->db->query("delete from producto_imagen where cod_imagen in (".$inDetalle.") ");
    }

    public function get_categoriaProducto($idCategoria = '0',$txt_buscar)
    {
        $sql = "" .
        "SELECT c.cod_categoria AS codigo, " .
        "       c.nom_categoria AS nombre, " .
        "       c.es_categoria  AS estado, " .
        "       c.cod_categoria_padre  AS codigoCategoriaPadre, " .
        "       'categoria'           AS tipo " .
        "FROM   categoria c " .
        "WHERE  c.cod_categoria_padre=" . $idCategoria .
        " " .
        "UNION " .
        " " .
        "SELECT p.cod_producto AS codigo, " .
        "       p.nom_producto AS nombre, " .
        "       p.es_producto  AS estado, " .
        "       p.cod_categoria  AS codigoCategoriaPadre, " .
        "       'producto'          AS tipo " .
        "FROM   producto p " .
        "WHERE  p.cod_categoria=" . $idCategoria;

        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }



    public function get_productoOpcionById($idProducto = '0'){
            $sql = "" .
                "SELECT p.cod_producto , " .
                "       p.cod_producto_opcion , " .
                "       p.valor_1 , " .
                "       p.valor_2 , " .
                "       p.tipo , " .
                "       CASE  " .
                "       WHEN p.tipo= 0 THEN 'Otro' " .
                "       WHEN p.tipo= 1 THEN 'Precio' " .
                "       ELSE 'Desconocido' " .
                "       END  as nombreTipo ," .
                "       p.nombre " .
                "FROM   producto_opcion p  " .
                "WHERE  ".
                    "   p.cod_producto=" . $idProducto ;
        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }

    public function get_productoAutocomplete($nombre = ''){
        $sql = "" .
            "SELECT p.cod_producto        AS codigo  , " .
            "       p.nom_producto        AS nombre  , " .
            "       IFNULL(TRIM(p.imagen), 'mininodisponible.png')  AS imagen, " .
            "       c.cod_categoria_padre AS codigoCategoriaPadre, " .
            "       p.cod_categoria       AS codigoCategoria     , " .
            "       c.nom_categoria       AS nombreCategoria      " .
            "FROM   producto p , " .
            "       categoria c " .
            "WHERE  p.cod_categoria= c.cod_categoria ".
            "  and  p.nom_producto like '" . $nombre."%'";

        $query = $this->db->query($sql);

        $result = array();
        foreach ($query->result_array() as $row)
        {
            $result[] = $row;
        }
        return $result;
    }
}


?>